/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Ventas.DAO;

import com.dp1.pucp.Modelo.Clases.Cliente;
import com.dp1.pucp.Modelo.Clases.Presentacion;
import com.dp1.pucp.Util.HibernateUtil;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author ubuntu64
 */
public class PresentacionDAO {
        public void guardarPresentacion(Presentacion presentacion){
            Session session = HibernateUtil.getSessionFactory().openSession();
            Transaction tx =  session.beginTransaction();
        try {
            session.saveOrUpdate(presentacion);
            tx.commit();
        }catch(HibernateException e) {
            throw new HibernateException(e);
        } finally {
            session.close();            
        }        
    }


   public ArrayList<String> listarEstado() 
    {
        ArrayList<String> estados = new ArrayList<>();
        estados.add("Seleccionar");
        estados.add("Inactivo");
        estados.add("Activo");
        return estados;
    }
   
    
    public ArrayList<Presentacion> listarPresentaciones(int estado){
    ArrayList<Presentacion> listaResultados = new ArrayList<>();       
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction tx = session.beginTransaction();
        try{
            
            List lista; 
            
            if (estado==0){
                lista = session.createQuery("from Presentacion order by idpresentacion").list();
            }else{
                estado = estado-1;
                lista =session.createQuery("from Presentacion where estado = "+ estado +" order by idpresentacion").list(); 
            }
                
            Iterator iter = lista.iterator();
            while (iter.hasNext()) { 
                Presentacion c = (Presentacion) iter.next();
                Hibernate.initialize(c.getIdpresentacion());
                Hibernate.initialize(c.getNombre());
                Hibernate.initialize(c.getEstado());
                Hibernate.initialize(c.getDescripcion());
                Hibernate.initialize(c.getVolumen());
                Hibernate.initialize(c.getCantidad());
                          
                
                listaResultados.add(c);
            }        
            tx.commit();
        } catch(HibernateException e) {
            throw new HibernateException(e);    
        } finally {
            session.close();
            return listaResultados;
        }         
    }    
    
}
